package com.zhangxu.microservice.system.dao.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhangxu.microservice.system.dao.condition.RoleCondition;
import com.zhangxu.microservice.system.dao.entity.RoleDO;

import java.util.List;

/**
 * 角色DAO接口
 */
public interface RoleDao extends IService<RoleDO> {

    /**
     * 根据角色编码查询角色
     *
     * @param code 角色编码
     * @return 角色信息
     */
    RoleDO getByCode(String code);

    /**
     * 根据应用ID和角色编码查询角色
     *
     * @param appId 应用ID
     * @param code  角色编码
     * @return 角色信息
     */
    RoleDO getByAppIdAndCode(Long appId, String code);

    /**
     * 根据应用ID查询角色列表
     *
     * @param appId 应用ID
     * @return 角色列表
     */
    List<RoleDO> listByAppId(Long appId);

    /**
     * 分页查询角色
     *
     * @param condition 查询条件
     * @return 角色信息分页结果
     */
    IPage<RoleDO> page(RoleCondition condition);
}